package LeetCode算法.删除排序数组中重复项;

import java.util.Arrays;

public class SortedArrayDuplicates {
    public static void main(String[] args) {
        /*1.只是统计相邻数字是否存在重复项，对于arr2来说调用方法前应该先进行排序
        * 2.不要求输出数组，那么只需要得出最终长度即可*/
        int[] arr1={0,1,2,2,2,2,3,4,5};
        int[] arr2={0,1,2,4,5,2,3,4,5};

        System.out.println(removeDuplicates(arr1));
        System.out.println(Arrays.toString(arr1));
        System.out.println(removeDuplicates(arr2));
        System.out.println(Arrays.toString(arr2));
    }

    public static int removeDuplicates(int[] nums) {
        //判空操作
        if (nums.length == 0) {
            return 0;
        }
        //定义一个慢指针i和快指针j
        int i = 0;
        for (int j = 1; j < nums.length; j++) {
            //不相等就把快指针的值给了慢指针,如果相等就只让快指针后移
            if (nums[i] != nums[j]) {
                nums[++i] = nums[j];
            }
        }
        return i + 1;//因为i是从0开始的，输出长度应该+1
    }
}
